window: Create constraint solver on demand
authorTimm Bäder <mail@baedert.org>
Wed, 13 May 2020 07:21:01 +0000 (09:21 +0200)
committerTimm Bäder <mail@baedert.org>
Wed, 13 May 2020 09:52:16 +0000 (11:52 +0200)
gtk/gtkwindow.c

index 5a755ef4500338f09bfaa5782b9a85122eb07c46..266aeda851c43f36aeaaea4baa6509c7d0375b83 100644 (file)
@@ -1602,9 +1602,6 @@ gtk_window_init (GtkWindow *window)
                             G_CALLBACK (gtk_window_handle_focus), window);
   gtk_widget_add_controller (widget, controller);
 
-  /* Shared constraint solver */
-  priv->constraint_solver = gtk_constraint_solver_new ();
-
   controller = gtk_shortcut_controller_new ();
   gtk_event_controller_set_propagation_phase (controller, GTK_PHASE_CAPTURE);
 
@@ -1875,6 +1872,12 @@ gtk_window_root_get_constraint_solver (GtkRoot *root)
   GtkWindow *self = GTK_WINDOW (root);
   GtkWindowPrivate *priv = gtk_window_get_instance_private (self);
 
+  if (!priv->constraint_solver)
+    {
+      /* Shared constraint solver */
+      priv->constraint_solver = gtk_constraint_solver_new ();
+    }
+
   return priv->constraint_solver;
 }